home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1994 / MacHack 1994.toast / MacHack™ 1987-1994 / MacHack™ '91 / '91 Attendee Contributions / HackSplashƒ / hackSplash.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-23  |  3.1 KB  |  105 lines  |  [TEXT/MPS ]

  1. /**************************************************************************
  2.  
  3.     Splash Hack
  4.     
  5.      INIT and trap patch done at MacHack 1991. A simple animation replaces
  6.     _SysBeep. The animation consists of a few PICTs loaded in the 
  7.     System Heap at startup. The patch code block is stuffed with references
  8.     to the storage and installed. This file is the loader.
  9.     
  10.      This is not an example of good practice in the Macintosh environment!
  11.     Please consider this code - well you know - a HACK !!
  12.      
  13.     NOTICE: Distribution is restricted to non-commercial agencies and 
  14.     user groups, as long as this notice remains. Probably to people
  15.     that know what they are doing also, but then again, who's to say ?!
  16.  
  17.  
  18.     File Created                                    20Jun91        bh
  19.  
  20.                                             NOESIS Software Construction
  21. ***************************************************************************/
  22. #include <types.h>
  23.  
  24. #define        new_hdrs        0                /*     Think C change-over        */
  25.  
  26. #if(new_hdrs)
  27. #include <Resources.h>
  28. #else
  29. #include <ResourceMgr.h>
  30. #endif
  31.  
  32.  
  33. /*************************************************************************/
  34. main()
  35. {
  36.     Handle        pRes;
  37.     long        *pPtr;
  38.                                             /* hard-wired */
  39.     PicHandle            r0  = (PicHandle)GetResource( 'PICT', 160 );
  40.     PicHandle            r1  = (PicHandle)GetResource( 'PICT', 129 );
  41.     PicHandle            r2  = (PicHandle)GetResource( 'PICT', 130 );
  42.     PicHandle            r3  = (PicHandle)GetResource( 'PICT', 131 );
  43.     PicHandle            r4  = (PicHandle)GetResource( 'PICT', 132 );
  44.     PicHandle            r5  = (PicHandle)GetResource( 'PICT', 133 );
  45.     PicHandle            r6  = (PicHandle)GetResource( 'PICT', 134 );
  46.     PicHandle            r7  = (PicHandle)GetResource( 'PICT', 135 );
  47.     PicHandle            r8  = (PicHandle)GetResource( 'PICT', 136 );
  48.     PicHandle            r9  = (PicHandle)GetResource( 'PICT', 137 );
  49.     PicHandle            r10 = (PicHandle)GetResource( 'PICT', 138 );
  50.     PicHandle            r11 = (PicHandle)GetResource( 'PICT', 139 );
  51.     PicHandle            r12 = (PicHandle)GetResource( 'PICT', 140 );
  52.     PicHandle            r13 = (PicHandle)GetResource( 'PICT', 141 );
  53.     PicHandle            r14 = (PicHandle)GetResource( 'PICT', 142 );
  54.  
  55.     DetachResource( (Handle)r0 );
  56.     DetachResource( (Handle)r1 );
  57.     DetachResource( (Handle)r2 );
  58.     DetachResource( (Handle)r3 );
  59.     DetachResource( (Handle)r4 );
  60.     DetachResource( (Handle)r5 );
  61.     DetachResource( (Handle)r6 );
  62.     DetachResource( (Handle)r7 );
  63.     DetachResource( (Handle)r8 );
  64.     DetachResource( (Handle)r9 );
  65.     DetachResource( (Handle)r10 );
  66.     DetachResource( (Handle)r11 );
  67.     DetachResource( (Handle)r12 );
  68.     DetachResource( (Handle)r13 );
  69.     DetachResource( (Handle)r14 );
  70.  
  71.     pRes = GetResource( 'nPCH', 128 );
  72.     DetachResource( pRes );
  73.     HLock( pRes );
  74.     pPtr = (long*)*pRes;
  75.     pPtr = (long*)((char*)pPtr + 6);
  76.         
  77.     pPtr[0] = (long)r0;
  78.     pPtr[1] = (long)r1;
  79.     pPtr[2] = (long)r2;
  80.     pPtr[3] = (long)r3;
  81.     pPtr[4] = (long)r4;
  82.     pPtr[5] = (long)r5;
  83.     pPtr[6] = (long)r6;
  84.     pPtr[7] = (long)r7;
  85.     pPtr[8] = (long)r8;
  86.     pPtr[9] = (long)r9;
  87.     pPtr[10] = (long)r10;
  88.     pPtr[11] = (long)r11;
  89.     pPtr[12] = (long)r12;
  90.     pPtr[13] = (long)r13;
  91.     pPtr[14] = (long)r14;
  92.     
  93. #if(new_hdrs)
  94.     NSetTrapAddress( (long)StripAddress(*pRes),
  95.                           _SysBeep,
  96.                           ToolTrap );
  97. #else
  98.     NSetTrapAddress( (long)StripAddress(*pRes),
  99.                           0xA9C8,
  100.                           ToolTrap );
  101. #endif
  102.  
  103. }
  104.  
  105.